home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / h323_detection.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  115 lines

  1. #
  2. # Copyright (C) 2004 Tenable Network Security
  3. #
  4. if(description)
  5. {
  6.  script_id(12243);
  7.  script_version("$Revision: 1.3 $");
  8.  
  9.  name["english"] = "H323 application detection";
  10.  
  11.  script_name(english:name["english"]);
  12.  
  13.  
  14.  desc["english"] = "
  15. H323 is a protocol used all over the Internet.  It is used for 
  16. Voice Over IP (VoIP), Microsoft NetMeeting, and countless other
  17. applications.  Nessus was able to determine that the remote device
  18. supports the H323 protocol.  It is in your best interest to run a 
  19. separate audit against this IP to determine the potential risk
  20. introduced by this application.  
  21.  
  22. Risk factor : None";
  23.  
  24.  
  25.  
  26.  script_description(english:desc["english"]);
  27.  
  28.  summary["english"] = "H323 application detection";
  29.  
  30.  script_summary(english:summary["english"]);
  31.  
  32.  script_category(ACT_GATHER_INFO);
  33.  
  34.  script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security");
  35.  family["english"] = "General";
  36.  script_family(english:family["english"]);
  37.  
  38.  script_require_ports(1720);
  39.  exit(0);
  40. }
  41.  
  42.  
  43.  
  44. # start script
  45.  
  46.  
  47. # Thank You Ethereal and SPIKE !
  48. function setup () 
  49. {
  50.     # Q.931 HEADER
  51.     TPKT = raw_string(0x03,0x00,0x00,0x09); #version, RESERVED, 2 bytes LENGTH
  52.     PD = raw_string(0x08);                  #protocol discriminator
  53.     CR = raw_string(0x02);                  # Call reference value length
  54.     CRF = raw_string(0x24);                 # call reference flag
  55.     CRV = raw_string(0x24);                 # call reference value
  56.     MT = raw_string(0xc2);                  # Message type (5 == setup) 
  57.     QHEADER = TPKT + PD + CR + CRF + CRV + MT;
  58.  
  59.  
  60.     # BEARER Capability
  61.     BC = raw_string(0x05);                  # information element
  62.     LEN = raw_string(0x04,0x03);            # length
  63.     CS = raw_string(0x88);                  # Coding standard
  64.     TM = raw_string(0x93);                  # transfer mode
  65.     UI = raw_string(0xa5);                  # User info layer 1 protocol
  66.     BHEADER = BC + LEN + CS + TM + UI;
  67.  
  68.     # DISPLAY
  69.     IE = raw_string(0x28);                  # information element
  70.     LEN = raw_string(0x07);                 # LEN    
  71.     DI = string("NESSUS") + raw_string(0x00); # display info
  72.     DHEADER = IE + LEN + DI;
  73.  
  74.     # User-User
  75.     UU = raw_string(0x73);                 # user-user
  76.     LEN = raw_string(0x02,0x05);           # Length
  77.     PD = raw_string(0x20);                 # protocol discriminator
  78.  
  79.     for (i=0; i<63; i++) 
  80.     {
  81.         RM = RM + raw_string(rand() % 256);
  82.     }
  83.  
  84.     UHEADER = UU + LEN + PD + RM;
  85.  
  86.     MREQ = QHEADER + BHEADER + DHEADER + UHEADER;
  87.     return (MREQ);
  88. }
  89.  
  90.  
  91. # send a  short packet and look for error
  92. port = 1720;
  93. if (! get_port_state(port))
  94.     exit(0);
  95.  
  96. req = setup();
  97. soc = open_sock_tcp(port);
  98. if (!soc) 
  99.     exit(0);
  100.  
  101. send(socket:soc, data:req);
  102. r = recv(socket:soc, length:1024);
  103. close(soc);
  104. if (r)
  105. {
  106.     if (ord(r[0]) == 3)
  107.     {
  108.         security_note(port);
  109.         exit(0);
  110.     }
  111.  
  112.  
  113.  
  114.